An ever-increasing quantity of media content is being produced that can be viewed by a content consuming user (content consumer) on a viewing device, such as a television (“TV”) or similar. Moreover, a wide range of mechanisms are now available for delivering such content in addition to traditional delivery mechanisms such as delivery via a broadcast channel to a television. These include on-demand delivery to user devices such as smart-TVs, set-top boxes, smartphone or tablet devices, desktop computers, laptop computers etc. whereby a content consumer can stream media content (for online consumption) or download media content (for offline consumption) from a server over a network, such as the Internet or a cable TV network, at a time of their choosing. On-demand services are typically accessed by a user using a user device on which is executed suitable media client software such as a web-browser, media streaming or download application (or “app”) e.g. provided by the broadcaster or service provider, or embedded software e.g. embedded in a set-top box provided by an operator of a cable TV network.
As used herein, a “media stream” refers to media data that is encoded and transmitted to a user device in a manner that enables the user device to begin outputting the media data to a user of the user device before the media data has been received in its entirety (that is, while the media stream is still being received at the user device). Typically, a user can begin streaming a media asset from any desired temporal point in that media asset (which may or may not be the start of that media asset) and the stream is received in real-time (that is at a data rate of at least one second of media per second of transmission time) so that later parts of the media asset are received at least as fast as earlier parts are consumed by the user.
An individual piece of media content—equivalently referred to herein as a “media asset”—e.g. a video asset such as a film or episode of a television series may comprise both audio data and video data to be transmitted as audio and video streams. The audio and video are typically encoded separately. For example, the audio stream may be encoded into a compressed audio format (e.g. MP3) and the video stream may be encoded into a compressed video format (e.g. H.264). The encoded audio and video are typically assembled in a container bitstream (e.g. MPEG-4 format), which is transmitted from a streaming server to a streaming client (e.g. client software) of the user device for outputting as it is received (e.g. using a streaming transport protocol such as the Real-Time Transport Protocol (RTP)).